package demo1;

/**
 * 观察者设计模式（发布-订阅模式）（Observer）
 *
 * @author GongXincheng
 * @since 2019-09-23 13:35
 */
public class Main {
    public static void main(String[] args) {
        // 老板 通知者
        BaseSubject boss = new SubjectBoss();

        // 看NBA的观察者
        BaseObserver nbaObserver = new ObserverNba("DuMingyuan", boss);
        // 看股市的观察者
        BaseObserver stockObserver = new ObserverStock("ZhangQinghua", boss);

        // 将 观察者 放入到通知者的观察者列表中
        boss.attach(nbaObserver);
        boss.attach(stockObserver);

        // 修改 通知者 的状态
        boss.setSubjectState("Boss：GongXincheng is back ！");

        // 发布通知 给所有注册到老板通知者的观察者
        boss.notifyObserver();
    }
}
